package com.dmgis.qxfw.dao;

import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Timestamp;
import java.sql.Date;
import java.sql.Time;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.dmgis.qxfw.utils.DateTime;

/**
 * 
 * @author lc
 * @ClassName: MyResultSetHandle
 * @date 2018年9月29日 下午1:05:15 
 * @Description:查询得到数据结果集ResultSet，遍历加入map集合返回(其中日期类型都转为String返回)。
 */
public class MyResultSetHandle {

	public List<Map<String, Object>> resultToList(ResultSet set) throws Exception{
		ResultSetMetaData metData = set.getMetaData();
		List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();
		if(set.wasNull()||metData==null){
			return list;
		}else{
			//遍历数据库返回的set集
			while(set.next()){
				Map<String ,Object> map = new HashMap<String, Object>();
				//遍历每一列
				for(int i=0;i<metData.getColumnCount();i++){
					//得到列名
					String colName = metData.getColumnLabel(i+1);
					//数据放入map集合
					if(set.getObject(colName)!=null&&
							set.getObject(colName).toString().length()>0){
						//将时间类型转为String
						if(set.getObject(colName).getClass().equals(Timestamp.class)||
								set.getObject(colName).getClass().equals(Date.class)||
								set.getObject(colName).getClass().equals(Time.class)){
							DateTime dt = DateTime.parseDateTime(set.getObject(colName).toString());
							String date = dt.toDateTimeString();
							map.put(colName, date);
						}else{
							map.put(colName, set.getObject(colName));
						}
					}else{
						continue;
					}
				}
				list.add(map);
			}
		}
		return list;
	}
}
